博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.net GridView Eval和Bind 区别小解
阅读量:6330 次
发布时间:2019-06-22

本文共 2648 字,大约阅读时间需要 8 分钟。

    

    最近在做课程设计,GridView绑定SqlDataSouce进行数据更新的时候出现了难点,就是自定义在EditItemTemplete里的控件无法获取服务器ID。也就是说,如果不用GridView自带的Row_Updating事件的话(也就是不能用myGridview.Rows[e.RowIndex].Cells[...].Controls[...].FindControl("控件ID")来搜索控件),我就不能传参给UpdateCommand!!!纠结了好久,现在把解决方案记下来。

 

首先引用一篇网上点击最高的博客,引入BindEval的概念。

 

大体来说,Eval单纯用来展示数据Bind可以被修改并回写到数据库

那么问题就来了,怎么回写?

这是我的一个SqlDataSouce Demo

请注意上面橙色的一个长字符串UpdateCommand里@开头的标变量和一个UpdateParameters标记段里的几个值。ASP.NET框架似乎就是用它们,实现了“识别”所有采用Bind字段绑定的值。那么到这里,我们先记住一点,他们是有先后顺序的!!!

 

 

我折腾了一下午带一个晚上,得出的理解是(如有错误,请一定告诉我!):你在GridView里用了多少个Bind,你UpdateCommand字符串里面至少就应该有多少个标变量

现在来看我的gridview:

.png" class="GridView_floorImg" title="此房间位于<%# Eval("Rposition")%>楼" alt="此房间位于<%# Eval("Rposition")%>楼" />
<%# Eval("Description")%>

我用橙色标记出了GridView中用了Bind的地方,总共三个,按顺序对应着UpDateCommand中前三个标变量。

至于框架是怎么识别RoomId字段的我还没有研究透,等研究透数据控件的原理或许就知道了,但起码现在对于我来说已经够用了!

注:此时我后台cs文件中并没有代码,GridView也并没有绑定Row_Updating事件,可一切就这么发生了!感想就是,对于初学者发现自己的数据成功绑定并正确得到修改还是很有成就感的。

 

看着同学项目中杂七杂八难看的代码,不禁感叹微软的小控件的微妙之处。

有空决定再写一篇关于CSS美化asp.net自带控件的博文吧!

 

转载于:https://www.cnblogs.com/Xsdd/p/4122064.html

你可能感兴趣的文章
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
判断二叉树是否平衡、是否完全二叉树、是否二叉排序树
查看>>
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>
IntelliJ IDEA
查看>>
低版本mybatis不能用PageHeper插件的时候用这个分页
查看>>
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>